1. Field of the Invention
The invention relates to the field of color conversion and, in particular, to converting a color image to a grayscale image.
2. Statement of the Problem
In image processing, a grayscale image is an image in which the value of each pixel carries only intensity information. Images of this sort, also known as black-and-white, are composed exclusively of shades of gray, varying from black at the weakest intensity to white at the strongest. Grayscale images are distinct from one-bit black-and-white images (i.e., images with only two colors, black and white, also called bilevel or binary images). Instead, grayscale images have many shades of gray in between. Grayscale images are also called monochromatic, denoting the absence of any chromatic variation. Grayscale images are often the result of measuring the intensity of light at each pixel in a color image and representing that intensity as a varying shade of gray (e.g., 1-255 different shades of gray). Alternatively, grayscale images may be encoded so that the weakest intensity is white, while the strongest intensity is black. Grayscale encoded in this way is often called K. Some popular image formats, such as TIFF, support both encodings.
Grayscale image processing occurs in a variety of imaging devices, ranging from digital cameras to printing systems. For example, in a production printing system, the print controller within the printing system interprets image data of a print job to generate sheetside bitmaps of the print job. The sheetside bitmaps represent the image to be printed on one side of a sheet of a print medium. Each sheetside bitmap generally comprises a 2-dimensional array of picture elements (“pixels”, or PELs) that represent a corresponding formatted sheet of the print job. Each pixel of the image data represents an encoded color value in accordance with the requirements of the particular print job encoding and the capabilities of the printing system on which the print job is to be printed. If the printer is a monochrome printer and/or if the print job requires monochrome printing, the print controller may first convert the color image data to grayscale. However, this grayscale color conversion generally involves interpolation of color values to grayscale values which is exceptionally processor intensive. For example, to obtain a very accurate grayscale value for printing Red Green Blue (RGB) images on a monochrome printer, a relatively large RGB to “K” lookup table (i.e., an output International Color Consortium profile, or ICC profile) is used. However, this lookup table generally requires mathematical interpolations in a three-dimensional space.
Generally, with production printing systems associated with data processing enterprises, the print controller controls the overall operation of the printing system. For example, the print controller may perform host interfacing, interpretation or rendering, and lower level process control or interface features of print engines of the printing system. In this regard, the print controller may include appropriate adapters for coupling the printing system to one or more host systems that transmit print jobs to the printing system that are generally encoded in the form of a page description language such as PostScript (PS), PCL, IPDS, etc. The print controller stores or buffers the sheetside bitmaps in accordance with storage capabilities of the particular architecture of a particular print controller. The print controller then forwards the sheetside bitmaps to one or more print engines (sometimes also referred to as an “imaging engine” or as a “marking engine”). The print engines have internal queues for storing the sheetside bitmaps to be printed. A print engine pulls the sheetside bitmaps off of the queue and performs an imaging process to mark the print medium with the sheetside bitmaps provided by the print controller. The print engine may comprise a laser print engine, an ink-jet print engine, or another type of imaging system that transfers each sheetside bitmap to corresponding pixels on paper. The print jobs received by production printing systems, however, are typically large (e.g., paper bills generated by a phone company). Thus, the print controller may be required to interpolate many color images that overwhelm the processing capabilities of the print controller and slow down printing.
The standard approach to overcome such interpolation is to convert RGB to an intermediate color space, such as YCbCr or YCgCo, discard the chrominance components (i.e., CbCr or CgCo), and use the “Y” luminance components as the grayscale value. One problem with this technique is that the separation between luminance and chrominance is not ideal as some of the luminance “bleeds” into the chrominance components. So, in discarding the chrominance components, information is lost and the grayscale value is inaccurate.
Based upon the foregoing, those skilled in the art will readily recognize that there exists a need to provide accurate grayscale conversions that do not excessively consume valuable processing resources.